package com.im;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

// 注册活动
public class RegActivity extends AppCompatActivity {
    private EditText mEditPassword;         // "密码"编辑框
    private EditText mEditRepassword;       // "确认密码"编辑框
    private EditText mEditUserName;         // "用户名"编辑框
    private UserListView mListViewIcons;    // 头像列表控件

    /**
     * "取消"按钮的单击响应方法。
     * @param view    按钮
     */
    public void onCancel(View view) {
        super.setResult(AppCompatActivity.RESULT_CANCELED);
        super.finish();
    }

    /**
     * 创建事件的响应方法。
     * @param savedInstanceState    保存的实例状态
     */
    @SuppressLint("MissingSuperCall")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 设置标题
        super.setTitle(R.string.IDS_REG);

        // 设置视图
        super.setContentView(R.layout.activity_reg);

        // 初始化成员
        mEditUserName = super.findViewById(R.id.IDC_EDIT_USERNAME);
        mEditPassword = super.findViewById(R.id.IDC_EDIT_PASSWORD);
        mEditRepassword = super.findViewById(R.id.IDC_EDIT_REPASSWORD);
        mListViewIcons = super.findViewById(R.id.IDC_LIST_VIEW_ICONS);
        mListViewIcons.setNumColumns(Const.REG_ACTIVITY_ICON_LIST_COLUMN_COUNT);
        for (int i = 0; i < Const.ICON_COUNT; i++) {
            mListViewIcons.addItem(i);
        }

        // 设置最大用户名长度和最大密码长度
        mEditUserName.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Const.MAX_USERNAME_LEN)});
        mEditPassword.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Const.MAX_PASSWORD_LEN)});
        mEditRepassword.setFilters(new InputFilter[]{new InputFilter.LengthFilter(Const.MAX_PASSWORD_LEN)});
    }

    /**
     * "确定"按钮的单击响应方法。
     * @param view    按钮
     */
    public void onOK(View view) {
        final String username = mEditUserName.getText().toString();
        final String password = mEditPassword.getText().toString();
        final String repassword = mEditRepassword.getText().toString();

        // 检查用户名是否为空
        if (TextUtils.isEmpty(username)) {
            Toast.makeText(this, R.string.IDS_USERNAME_EMPTY, Toast.LENGTH_SHORT).show();
            mEditUserName.requestFocus();
            return;
        }

        // 检查密码是否为空
        if (TextUtils.isEmpty(password)) {
            Toast.makeText(this, R.string.IDS_PASSWORD_EMPTY, Toast.LENGTH_SHORT).show();
            mEditPassword.requestFocus();
            return;
        }

        // 检查两次密码是否一致
        if (!password.equals(repassword)) {
            Toast.makeText(this, R.string.IDS_PASSWORD_NOT_EQUAL, Toast.LENGTH_SHORT).show();
            mEditPassword.requestFocus();
            return;
        }

        // 检查用户头像
        final int iconIndex = (int)mListViewIcons.getSelectedItemPosition();
        if (iconIndex == -1) {
            Toast.makeText(this, R.string.IDS_ICON_NOT_SELECT, Toast.LENGTH_SHORT).show();
            return;
        }

        // 保存用户信息
        final Intent intent = super.getIntent();
        final Bundle bundle = new Bundle();
        bundle.putString(Const.KEY_USERNAME, username);
        bundle.putString(Const.KEY_PASSWORD, password);
        bundle.putInt(Const.KEY_ICON_INDEX, iconIndex);
        intent.putExtras(bundle);
        super.setResult(AppCompatActivity.RESULT_OK, intent);

        // 关闭
        super.finish();
    }
}
